#include <iostream>
#include <vector>

// c++14之后允许推导返回值
// auto func(auto a)
// {
//     return a;
// }

int main()
{
    // auto : 自动类型推导关键字
    // auto a = 10, b = 1.5;  //二义性推导不被允许
    // auto a = 10;
    // auto b = 1.5;

    // int a = 10;
    // int &b = a;
    // auto c = b; //推不出 & 推不出 const
    // c++;
    // std::cout<<a<<std::endl;

    // int a[] = {1,2,3,4,5};
    // auto b[10] = a;  //auto不能推数组


    // std::vector<int> v;
    // std::vector<auto> v2 = v; //推不了模板


    // auto a = func(1.2);
    // std::cout<<a<<std::endl;


    std::vector<int> v = {1,2,3,4,5};
    //基于范围的循环 : base range for
    for(auto& value : v)
    {
        std::cout<<value<<" ";
    }
    std::cout<<std::endl;

    return 0;
}